#ifndef __SLIST_H__
#define __SLIST_H__

// singly node type
struct dnode {
    int data;
    struct dnode *next;
    struct dnode *prev;
};
typedef struct dnode dNode_t;


void insertAfter(dNode_t *prevNode, int x); //insert x after prevNode
void insertAtFront(dNode_t **head, int x); //insert x at front
void insertAtTail(dNode_t **head, int x); //insert node at tail
dNode_t* deleteFromFront(dNode_t **head); //delete a node from front
void printList(dNode_t *head);
void reversePrintList(dNode_t *head);


#endif